package com.ms.qw.dto;

import com.ms.qw.enums.TipoSumatoria;
import com.ms.qw.util.ListUtil;

import java.math.BigDecimal;
import java.util.List;

public class RepBeanTotal {

    private BigDecimal totalAnno1;
    private BigDecimal totalAnno2;
    private BigDecimal totalAnno3;
    private BigDecimal totalAnno4;
    private BigDecimal totalGeneral;

    private BigDecimal totalRango1;
    private BigDecimal totalRango2;
    private BigDecimal totalRango3;
    private BigDecimal totalRango4;
    private BigDecimal totalRango5;
    private BigDecimal totalRango6;
    private BigDecimal totalRango;

    private BigDecimal totalCantidad1;
    private BigDecimal totalCantidad2;
    private BigDecimal totalCantidad3;
    private BigDecimal totalCantidad4;
    private BigDecimal totalCantidad;

    public RepBeanTotal(List lista, String fieldTotal, String fieldCantidad) {

        totalAnno1 = ListUtil.sum(lista, fieldTotal + "1", null);
        totalAnno2 = ListUtil.sum(lista, fieldTotal + "2", null);
        totalAnno3 = ListUtil.sum(lista, fieldTotal + "3", null);
        totalAnno4 = ListUtil.sum(lista, fieldTotal + "4", null);
        totalGeneral = totalAnno1.add(totalAnno2).add(totalAnno3).add(totalAnno4);

        totalCantidad1 = ListUtil.sum(lista, fieldCantidad + "1", null);
        totalCantidad2 = ListUtil.sum(lista, fieldCantidad + "2", null);
        totalCantidad3 = ListUtil.sum(lista, fieldCantidad + "3", null);
        totalCantidad4 = ListUtil.sum(lista, fieldCantidad + "4", null);
        totalCantidad = totalCantidad1.add(totalCantidad2).add(totalCantidad3).add(totalCantidad4);

    }

    public RepBeanTotal(List lista, TipoSumatoria tipo) {
        if (TipoSumatoria.ANNO.equals(tipo) || TipoSumatoria.CANTIDAD.equals(tipo)) {
            totalAnno1 = ListUtil.sum(lista, "anno1", null);
            totalAnno2 = ListUtil.sum(lista, "anno2", null);
            totalAnno3 = ListUtil.sum(lista, "anno3", null);
            totalAnno4 = ListUtil.sum(lista, "anno4", null);
            totalGeneral = totalAnno1.add(totalAnno2).add(totalAnno3).add(totalAnno4);
        }
        if (TipoSumatoria.CANTIDAD.equals(tipo)) {
            totalCantidad1 = ListUtil.sum(lista, "cantidad1", null);
            totalCantidad2 = ListUtil.sum(lista, "cantidad2", null);
            totalCantidad3 = ListUtil.sum(lista, "cantidad3", null);
            totalCantidad4 = ListUtil.sum(lista, "cantidad4", null);
            totalCantidad = totalCantidad1.add(totalCantidad2).add(totalCantidad3).add(totalCantidad4);
        }
        if (TipoSumatoria.RANGO.equals(tipo)) {
            totalRango1 = ListUtil.sum(lista, "rango1", null);
            totalRango2 = ListUtil.sum(lista, "rango2", null);
            totalRango3 = ListUtil.sum(lista, "rango3", null);
            totalRango4 = ListUtil.sum(lista, "rango4", null);
            totalRango5 = ListUtil.sum(lista, "rango5", null);
            totalRango6 = ListUtil.sum(lista, "rango6", null);
            totalRango = totalRango1.add(totalRango2).add(totalRango3).add(totalRango4).add(totalRango5).add(totalRango6);
        }
        if (TipoSumatoria.DETALLE.equals(tipo)) {
            totalRango1 = ListUtil.sum(lista, "montoMonedaLocal", null);
            totalRango2 = ListUtil.sum(lista, "montoMonedaDolares", null);
        }
    }


    public BigDecimal getTotalAnno1() {
        return totalAnno1;
    }

    public void setTotalAnno1(BigDecimal totalAnno1) {
        this.totalAnno1 = totalAnno1;
    }

    public BigDecimal getTotalAnno2() {
        return totalAnno2;
    }

    public void setTotalAnno2(BigDecimal totalAnno2) {
        this.totalAnno2 = totalAnno2;
    }

    public BigDecimal getTotalAnno3() {
        return totalAnno3;
    }

    public void setTotalAnno3(BigDecimal totalAnno3) {
        this.totalAnno3 = totalAnno3;
    }

    public BigDecimal getTotalAnno4() {
        return totalAnno4;
    }

    public void setTotalAnno4(BigDecimal totalAnno4) {
        this.totalAnno4 = totalAnno4;
    }

    public BigDecimal getTotalCantidad1() {
        return totalCantidad1;
    }

    public void setTotalCantidad1(BigDecimal totalCantidad1) {
        this.totalCantidad1 = totalCantidad1;
    }

    public BigDecimal getTotalCantidad2() {
        return totalCantidad2;
    }

    public void setTotalCantidad2(BigDecimal totalCantidad2) {
        this.totalCantidad2 = totalCantidad2;
    }

    public BigDecimal getTotalCantidad3() {
        return totalCantidad3;
    }

    public void setTotalCantidad3(BigDecimal totalCantidad3) {
        this.totalCantidad3 = totalCantidad3;
    }

    public BigDecimal getTotalCantidad4() {
        return totalCantidad4;
    }

    public void setTotalCantidad4(BigDecimal totalCantidad4) {
        this.totalCantidad4 = totalCantidad4;
    }

    public BigDecimal getTotalGeneral() {
        return totalGeneral;
    }

    public void setTotalGeneral(BigDecimal totalGeneral) {
        this.totalGeneral = totalGeneral;
    }

    public BigDecimal getTotalCantidad() {
        return totalCantidad;
    }

    public void setTotalCantidad(BigDecimal totalCantidad) {
        this.totalCantidad = totalCantidad;
    }

    public BigDecimal getTotalRango1() {
        return totalRango1;
    }

    public void setTotalRango1(BigDecimal totalRango1) {
        this.totalRango1 = totalRango1;
    }

    public BigDecimal getTotalRango2() {
        return totalRango2;
    }

    public void setTotalRango2(BigDecimal totalRango2) {
        this.totalRango2 = totalRango2;
    }

    public BigDecimal getTotalRango3() {
        return totalRango3;
    }

    public void setTotalRango3(BigDecimal totalRango3) {
        this.totalRango3 = totalRango3;
    }

    public BigDecimal getTotalRango4() {
        return totalRango4;
    }

    public void setTotalRango4(BigDecimal totalRango4) {
        this.totalRango4 = totalRango4;
    }

    public BigDecimal getTotalRango5() {
        return totalRango5;
    }

    public void setTotalRango5(BigDecimal totalRango5) {
        this.totalRango5 = totalRango5;
    }

    public BigDecimal getTotalRango6() {
        return totalRango6;
    }

    public void setTotalRango6(BigDecimal totalRango6) {
        this.totalRango6 = totalRango6;
    }

    public BigDecimal getTotalRango() {
        return totalRango;
    }

    public void setTotalRango(BigDecimal totalRango) {
        this.totalRango = totalRango;
    }
}
